/**
 * 
 */
package com.py.credit.service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.py.credit.entity.ConcernedSubject;
import com.py.framework.core.common.Page;

/**
 * @author dd
 *
 */
public interface CreditConcernedService {

	/**
	 * @param userId
	 * @param showColumns
	 * @param additionalColumns
	 * @param condition
	 * @param page
	 * @return
	 */
	List<Map<String, Object>> getByConditionForPage(Long userId, List<String> showColumns, String[] additionalColumns,
			String condition, Page page);

	/**
	 * @param name
	 * @param level
	 *
	 */
	void add(ConcernedSubject record);

	/**
	 * @param file
	 * @throws IOException
	 */
	Map<String, Integer> add(CommonsMultipartFile file, Long userId) throws IOException;

	/**
	 * @param id
	 */
	void deletById(int id);

	/**
	 * @param name
	 * @return
	 */
	List<String> getUniqueByName(String name);

	/**
	 * 获取关注主体有变动的关注人id列表
	 * 
	 * @return
	 */
	List<Map<String, Integer>> getSubjectChangedSubscriber();

	/**
	 * @param id
	 * @param recordId
	 * @param resourceId
	 */
	void addNewRecord(int id, int recordId, String resourceId);

	/**
	 * 
	 * @param checkStatus
	 * @param id
	 * @param modifyTime
	 */
	void updateCheckStatus(String checkStatus, int id, String modifyTime);

	/**
	 * @param string
	 * @param changedSubject
	 */
	void updatePushStatus(String pushStatus, List<Map<String, Integer>> changedSubject);

	/**
	 * @param subjectName
	 * @param id
	 * @return
	 */
	boolean exsit(String subjectName, Long id);

}
